package mest.service.cxj;

import mest.VO.cxj.ProductOrderVO;
import mest.VO.cxj.ProductJobVO;
import mest.entity.bom;
import mest.entity.product_order;
import mest.entity.save_file;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ProductOrderService {

    /**
     * 首页，所有单据表 (分页查询)
     *
     * @param page
     * @param limit
     * @return
     */
    List<ProductOrderVO> selectAllProductOrder(Integer page, Integer limit, Integer checkStatus, String cfName, String planDo, String planFinish, String theirDb);

    /**
     * 查询生产单数量
     *
     * @return
     */
    Integer selectCountProductOrder(Integer checkStatus, String cfName, String planDo, String planFinish, String theirDb);

    /**
     * 添加生产计划单
     */
    int insertProductOrder(product_order po,String theirDb) throws Exception;

    /**
     * 修改生产单
     *
     * @param po
     * @return
     */
    int updateProductOrder(product_order po,String theirDb);

    /**
     * 判断生产作业单中是否存在ID属性
     *
     * @param product_order
     * @return
     */
    public boolean isExitId(product_order product_order);

    /**
     * 修改生产单状态
     *
     * @param poId
     */
    int updateProductOrderByStatus(@Param("poId") Integer poId,String theirDb);

    /**
     * addProductInfo页面查询存货信息  分页
     *
     * @param page
     * @param limit
     * @return
     */
    List<ProductJobVO> selectProductInfo(Integer page, Integer limit, String commName,String theirDb);

    /**
     * addProductInfo页面查询存货信息  数量
     *
     * @return
     */
    int selectProductInfoCount(String commName,String theirDb);

    /**
     * 查询某存货的物料信息
     *
     * @param bomId
     * @return
     */
    List<save_file> selectBomInfo(Integer page, Integer limit, Integer bomId, String theirDb);


    /**
     * addProductInfo页面查询存货信息  (数量)
     */
    int selectBomInfoCount(Integer bomId,String theirDb);
}
